package com.duoec.demo.dubbo.dto.service;

import com.duoec.demo.dubbo.dto.request.ArticleQuery;
import com.duoec.demo.dubbo.dto.request.ArticleSaveReq;
import com.duoec.demo.dubbo.dto.response.Article;
import com.duoec.demo.dubbo.dto.response.PagedList;

import java.util.List;

/**
 * @author xuwenzhen
 * @chapter 内容接口
 * @section 文章接口
 * @date 19/1/4
 */
public interface ArticleService {
    /**
     * 通过ID获取文章基本信息
     *
     * @param id 文章ID
     * @return 文章基本信息
     */
    Article get(int id);

    /**
     * 保存文章
     *
     * @param request 保存文章请求
     * @return 保存成功的文章
     */
    Article save(ArticleSaveReq request);

    /**
     * 查询文章（带分页）
     *
     * @param query 查询文章
     * @return 分页的文章列表
     */
    PagedList<Article> query(ArticleQuery query);

    /**
     * 查询文章（不带分页）
     *
     * @param query 查询文章
     * @return 文章列表
     */
    List<Article> list(ArticleQuery query);
}
